package com.tn.service.alarm;

import com.tn.controller.alarm.common.model.PageInput;
import com.tn.controller.alarm.common.model.PageResult;
import com.tn.controller.alarm.common.model.alarm.vo.AlarmQueryVO;
import com.tn.controller.alarm.common.model.alarm.vo.AlarmVO;
import com.tn.controller.alarm.common.model.vehicle.vo.AlarmInputParam;

import java.util.Map;

/**
 * 告警service
 *
 * @program: tn_aucy_java
 * @author: yangjiayao
 * @create: 2022/2/17
 */
public interface IAlarmService {
    /**
     * 查询告警参数
     *
     * @return 告警参数
     */
    Map<String, String> queryAlarmParam();

    /**
     * 更新告警参数
     *
     * @return 更新结果
     */
    boolean updateAlarmParam(String name, String value);

    /**
     * 查询告警信息
     *
     * @param alarmPageQuery 分页查询条件
     * @return 摄像头信息
     */
    PageResult<AlarmVO> queryAlarmInfo(PageInput<AlarmQueryVO> alarmPageQuery);

    /**
     * 保存告警信息
     *
     * @param alarmParam 告警信息
     * @return 保存结果
     */
    int saveAlarmInfo(AlarmInputParam alarmParam);

    /**
     * 处理告警
     *
     * @param handler 处理人
     * @param id      告警ID
     * @return 处理结果
     */
    boolean handleAlarm(String handler, Integer id);

    /**
     * 创建告警监测任务
     *
     * @param alarmParam 告警入参
     * @return 告警ID
     */
    int createAlarmTask(AlarmInputParam alarmParam);

    /**
     * 删除告警监测任务
     *
     * @param alarmTaskId 告警监测任务ID
     */
    void deleteAlarmTask(Integer alarmTaskId);
}
